package util;

import java.io.*;

/**
 * @author tms
 * @Date 2023.9.13
 */
public class TextUtil {

    /**
     * 传入文件绝对路径，读出txt文件，将文件内容转化为String字符串输出
     *
     * @param textPath 文件路径
     * @return 文件内容
     */
    public static String readFromText(String textPath) {
        //文件返回内容--字符串
        String s = "";
        String strLine;
        // 将 txt文件按行读入s中
        File file = new File(textPath);
        //文件输入流
        FileInputStream fileInputStream = null;
        try {
            fileInputStream = new FileInputStream(file);
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            // 字符串拼接
            while ((strLine = bufferedReader.readLine()) != null) {
                s += strLine;
            }
            // 关闭所有资源
            inputStreamReader.close();
            bufferedReader.close();
            fileInputStream.close();
        } catch (IOException e) {
            System.out.println("读取文件内容失败！");
        }
        return s;
    }

    /**
     * 将对比后的相似度结果写入txt文件
     *
     * @param textElement 传入的内容--结果
     * @param filePath    写入的文件路径
     */
    public static void writeToText(String textElement, String filePath) {
        File dir = new File(filePath);
        //一、检查放置文件的文件夹路径是否存在，不存在则创建
        if (!dir.exists()) {
            // mkdirs创建多级目录
            dir.mkdirs();
        }
        File checkFile = new File(filePath + "/result.txt");
        FileWriter writer = null;
        try {
            // 二、检查目标文件是否存在，不存在则创建
            if (!checkFile.exists()) {
                // 创建目标文件
                checkFile.createNewFile();
            }
            // 三、向目标文件中写入内容
            // FileWriter(File file, boolean append)，append为true时为追加模式，false或缺省则为覆盖模式
            writer = new FileWriter(checkFile, false);
            writer.append(textElement);
            writer.flush();
        } catch (IOException e) {
            System.out.println("创建结果文件错误！");

        } finally {
            if (null != writer) {
                try {
                    writer.close();
                } catch (IOException e) {
                    System.out.println("写入文件错误！");
                }
            }
        }
    }
}
